February 24, 2026 \ 15:13:55

Building a System from the Ground Up

a purpose-built ticketing system I independently built from the framework up during my internship

The Task Brief

Right on my first day, my mentor at the time, Sir Robert Matoguinas gave me a brief of the tasks I’d be doing throughout my 400 hours in the company. One of which is the development of a ticketing system the company could put to use.

The goal was to develop a ticketing system purposely made for their ticketing process some of the notable features include:

He also emphasized developing it using “Native PHP”, which he clarified to not use frameworks such as Laravel or Symfony.

Learning Grounds

The first two weeks are focused on building the foundation of the system, this involves planning the database structure, flow, and most prominently the technology to be used. See, without frameworks, I need to enforce my own rules in designing the system from the file structure to routing. So, to achieve this, I had to take a closer look on existing frameworks and completely re-learn my understanding of how the server and clients interact.

The MVC structure is a good start for file management. It’s a universally accepted design pattern that even Laravel uses. For routing, I based my code on a simple public routing library called “phprouter” that I modified to support accounts.

Understanding the client-server interaction did not stop there however, as I got further insights in the middle of the development. Throughout the development, I’ve discovered:

See, developing with a higher level of technologies, I’ve been missing on different aspects of system design that could further improve my system designs in the future. So developing my own simple framework was a very enriching experience.

Post-Development

On February 4, 2026, I presented the completed system to the IT Department staff. I gave a thorough walkthrough — including a deep dive into the custom framework I built from the ground up — and walked away with an approval on the first presentation.

There were notes on the interface that could be improved and documentation still being in its early draft, both understandable given the system was independently developed over three months. The achievement I'm most proud of, however, isn't the system itself — it's everything I had to learn, build, and figure out on my own to get there.